1. Field of the Invention
The present embodiments relate to methods for eliminating echo in audio signals, and more particularly, methods, systems, and computer programs for eliminating echo for users communicating over a network connection.
2. Description of the Related Art
When having a conversation with a remote user in hands-free mode (e.g., a speaker mode on a mobile phone, hands-free video conferencing, etc.), sometimes users receive a reflection of their own voice because the sound of their voice is captured by the microphone in the other end of the conversation. This is referred to as echo, because the sound originated by a user comes back to the user.
In the presence of possible echo reflection, when the second party at the other end speaks, the voice from the second party may be mixed with the echo from the first party before sending the combination to the first party. This may result in distortion of the voice from the second party as perceived by the first party, lowering the quality of the communication exchange.
Echo cancellation is the process by which echo is eliminated from the signal received by a party in a network communication. Solutions have been designed for echo elimination, such as by using multiple microphones to perform voice analysis and filtering and only the voice from the user. However, audio echo cancellation may be a difficult problem to resolve due to time domain recognition of the echoed signal coupled with amplitude distortion. Typically, successful echo cancellation utilizing this approach requires recognition of partial signals over effectively large time intervals, leading to high buffering and computational costs. Further, when additional desired signal input (e.g., speech) is added, there is the risk of either canceling the desired signal within a band gap, or non-recognition of the desired signal, resulting in heightened noise.
What is needed is an echo cancellation system that provides good sound quality, may be operated with one or more microphones, and does not require a large amount of computational resources.
It is in this context that embodiments arise.